package com.itheima;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;

public class Server {

    //定义一个集合容器存储所有登录进来的客户端管道，以便将来有新消息时群发给它们
    //应该使用Map集合，键为存储客户端的Socket对象，值为昵称（昵称可能重复）=
    public static final Map<Socket, String> onlineSockets = new HashMap<>();

    public static void main(String[] args) {

        System.out.println("==========服务器启动==========");

        try {
            //1.注册端口
            ServerSocket serverSocket = new ServerSocket(Constant.PORT);
            //2.主线程负责接收客户端连接的连接请求
            while (true) {
                //3.调用accept方法，阻塞等待客户端连接，获取客户端的Socket对象
                System.out.println("等待客户端连接......");

                Socket socket = serverSocket.accept();
                //4.把这个管道交给一个独立的线程来处理，以便支持多个客户端同时通信
                new ServerThread(socket).start();

                System.out.println("一个客户端连接成功！......");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
